package com.amazon.bo;

import com.amazon.bo.base.BaseBo;
import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.xml.bind.annotation.XmlElement;
import java.io.Serializable;
import java.util.Date;

/**
 * Created by anhui on 2018/3/11.
 */
@Entity
@DynamicUpdate
@DynamicInsert
public class AmazonOrder extends BaseBo implements Serializable {

    @Column(columnDefinition = ("varchar(255) default null comment '亚马逊所定义的订单编码，格式为 3-7-7'"))
    @XmlElement(name = "AmazonOrderId")
    private String amazonOrderId;

    public String getAmazonOrderId() {
        return this.amazonOrderId;
    }

    public void setAmazonOrderId(String amazonOrderId) {
        this.amazonOrderId = amazonOrderId;
    }

    @Column(columnDefinition = ("varchar(256) default null comment '卖家所定义的订单编码。'"))
    private String sellerOrderId;

    public String getSellerOrderId() {
        return this.sellerOrderId;
    }

    public void setSellerOrderId(String sellerOrderId) {
        this.sellerOrderId = sellerOrderId;
    }

    @Column(columnDefinition = ("varchar(257) default null comment '创建订单的日期'"))
    private String purchaseDate;

    public String getPurchaseDate() {
        return this.purchaseDate;
    }

    public void setPurchaseDate(String purchaseDate) {
        this.purchaseDate = purchaseDate;
    }

    @Column(columnDefinition = ("datetime default null comment '订单的最后更新日期。'"))
    private Date lastUpdateDate;

    public Date getLastUpdateDate() {
        return this.lastUpdateDate;
    }

    public void setLastUpdateDate(Date lastUpdateDate) {
        this.lastUpdateDate = lastUpdateDate;
    }

    @Column(columnDefinition = ("varchar(259) default null comment '当前的订单状态。'"))
    private String orderStatus;

    public String getOrderStatus() {
        return this.orderStatus;
    }

    public void setOrderStatus(String orderStatus) {
        this.orderStatus = orderStatus;
    }

    @Column(columnDefinition = ("varchar(260) default null comment '订单配送方式：亚马逊配送 (AFN) 或卖家自行配送 (MFN)。可选项'"))
    private String fulfillmentChannel;

    public String getFulfillmentChannel() {
        return this.fulfillmentChannel;
    }

    public void setFulfillmentChannel(String fulfillmentChannel) {
        this.fulfillmentChannel = fulfillmentChannel;
    }

    @Column(columnDefinition = ("varchar(261) default null comment '订单中第一件商品的销售渠道,可选项'"))
    private String salesChannel;

    public String getSalesChannel() {
        return this.salesChannel;
    }

    public void setSalesChannel(String salesChannel) {
        this.salesChannel = salesChannel;
    }

    @Column(columnDefinition = ("varchar(262) default null comment '订单中第一件商品的订单渠道,可选项'"))
    private String orderChannel;

    public String getOrderChannel() {
        return this.orderChannel;
    }

    public void setOrderChannel(String orderChannel) {
        this.orderChannel = orderChannel;
    }

    @Column(columnDefinition = ("varchar(263) default null comment '货件服务水平,可选项'"))
    private String shipServiceLevel;

    public String getShipServiceLevel() {
        return this.shipServiceLevel;
    }

    public void setShipServiceLevel(String shipServiceLevel) {
        this.shipServiceLevel = shipServiceLevel;
    }

    @Column(columnDefinition = ("varchar(264) default null comment '冗余，见address表'"))
    private String shippingAddress;

    public String getShippingAddress() {
        return this.shippingAddress;
    }

    public void setShippingAddress(String shippingAddress) {
        this.shippingAddress = shippingAddress;
    }

    @Column(columnDefinition = ("varchar(265) default null comment '冗余，见Money表'"))
    private String orderTotal;

    public String getOrderTotal() {
        return this.orderTotal;
    }

    public void setOrderTotal(String orderTotal) {
        this.orderTotal = orderTotal;
    }

    @Column(columnDefinition = ("int(11) default null comment '已配送的商品数量,可选项'"))
    private int numberOfItemsShipped;

    public int getNumberOfItemsShipped() {
        return this.numberOfItemsShipped;
    }

    public void setNumberOfItemsShipped(int numberOfItemsShipped) {
        this.numberOfItemsShipped = numberOfItemsShipped;
    }

    @Column(columnDefinition = ("int(11) default null comment '未配送的商品数量'"))
    private int numberOfItemsUnshipped;

    public int getNumberOfItemsUnshipped() {
        return this.numberOfItemsUnshipped;
    }

    public void setNumberOfItemsUnshipped(int numberOfItemsUnshipped) {
        this.numberOfItemsUnshipped = numberOfItemsUnshipped;
    }

    @Column(columnDefinition = ("varchar(268) default null comment '冗余，货到付款 (COD) 订单的次级付款方式的相关信息。COD 订单是带有PaymentMethod = COD 的订单。包含一个或多个PaymentExecutionDetailItem响应元素。'"))
    private String paymentExecutionDetail;

    public String getPaymentExecutionDetail() {
        return this.paymentExecutionDetail;
    }

    public void setPaymentExecutionDetail(String paymentExecutionDetail) {
        this.paymentExecutionDetail = paymentExecutionDetail;
    }

    @Column(columnDefinition = ("varchar(269) default null comment '订单的主要付款方式。COD - 货到付款。仅适用于中国 (CN) 和日本 (JP) CVS - 便利店。仅适用于日本 (JP)。Other - COD 和 CVS 之外的付款方式。'"))
    private String paymentMethod;

    public String getPaymentMethod() {
        return this.paymentMethod;
    }

    public void setPaymentMethod(String paymentMethod) {
        this.paymentMethod = paymentMethod;
    }

    @Column(columnDefinition = ("varchar(270) default null comment '订单生成所在商城的匿名编码。'"))
    private String marketplaceId;

    public String getMarketplaceId() {
        return this.marketplaceId;
    }

    public void setMarketplaceId(String marketplaceId) {
        this.marketplaceId = marketplaceId;
    }

    @Column(columnDefinition = ("varchar(271) default null comment '买家的匿名电子邮件地址。'"))
    private String buyerEmail;

    public String getBuyerEmail() {
        return this.buyerEmail;
    }

    public void setBuyerEmail(String buyerEmail) {
        this.buyerEmail = buyerEmail;
    }

    @Column(columnDefinition = ("varchar(272) default null comment '买家姓名。'"))
    private String buyerName;

    public String getBuyerName() {
        return this.buyerName;
    }

    public void setBuyerName(String buyerName) {
        this.buyerName = buyerName;
    }

    @Column(columnDefinition = ("varchar(273) default null comment '订单的配送服务级别分类。Expedited FreeEconomy NextDay SameDay SecondDay Scheduled Standard'"))
    private String shipmentServiceLevelCategory;

    public String getShipmentServiceLevelCategory() {
        return this.shipmentServiceLevelCategory;
    }

    public void setShipmentServiceLevelCategory(String shipmentServiceLevelCategory) {
        this.shipmentServiceLevelCategory = shipmentServiceLevelCategory;
    }

    @Column(columnDefinition = ("tinyint(1) default null comment '指明订单配送方是否是亚马逊配送 (Amazon TFM) 服务'"))
    private boolean shippedByAmazonTFM;

    public boolean getShippedByAmazonTFM() {
        return this.shippedByAmazonTFM;
    }

    public void setShippedByAmazonTFM(boolean shippedByAmazonTFM) {
        this.shippedByAmazonTFM = shippedByAmazonTFM;
    }

    @Column(columnDefinition = ("varchar(275) default null comment '亚马逊 TFM订单的状态'"))
    private String tFMShipmentStatus;

    public String getTFMShipmentStatus() {
        return this.tFMShipmentStatus;
    }

    public void setTFMShipmentStatus(String tFMShipmentStatus) {
        this.tFMShipmentStatus = tFMShipmentStatus;
    }

    @Column(columnDefinition = ("varchar(276) default null comment '卖家自定义的配送方式，属于Checkout by Amazon (CBA) 所支持的四种标准配送设置中的一种。有关更多信息，请参阅您所在商城 Amazon Payments 帮助中心的“设置灵活配送方式”主题'"))
    private String cbaDisplayableShippingLabel;

    public String getCbaDisplayableShippingLabel() {
        return this.cbaDisplayableShippingLabel;
    }

    public void setCbaDisplayableShippingLabel(String cbaDisplayableShippingLabel) {
        this.cbaDisplayableShippingLabel = cbaDisplayableShippingLabel;
    }

    @Column(columnDefinition = ("varchar(277) default null comment '订单类型。'"))
    private String OrderType;

    public String getOrderType() {
        return this.OrderType;
    }

    public void setOrderType(String OrderType) {
        this.OrderType = OrderType;
    }

    @Column(columnDefinition = ("varchar(278) default null comment 'StandardOrder - 包含当前有库存商品的订单。Preorder -所含预售商品（发布日期晚于当前日期）的订单。'"))
    private String earliestShipDate;

    public String getEarliestShipDate() {
        return this.earliestShipDate;
    }

    public void setEarliestShipDate(String earliestShipDate) {
        this.earliestShipDate = earliestShipDate;
    }

    @Column(columnDefinition = ("datetime default null comment '您承诺的订单发货时间范围的最后一天。日期格式为 ISO 8601。'"))
    private Date latestShipDate;

    public Date getLatestShipDate() {
        return this.latestShipDate;
    }

    public void setLatestShipDate(Date latestShipDate) {
        this.latestShipDate = latestShipDate;
    }

    @Column(columnDefinition = ("datetime default null comment '您承诺的订单送达时间范围的第一天。日期格式为 ISO 8601。'"))
    private Date earliestDeliveryDate;

    public Date getEarliestDeliveryDate() {
        return this.earliestDeliveryDate;
    }

    public void setEarliestDeliveryDate(Date earliestDeliveryDate) {
        this.earliestDeliveryDate = earliestDeliveryDate;
    }

    @Column(columnDefinition = ("datetime default null comment '您承诺的订单送达时间范围的最后一天。日期格式为 ISO 8601。'"))
    private Date latestDeliveryDate;

    public Date getLatestDeliveryDate() {
        return this.latestDeliveryDate;
    }

    public void setLatestDeliveryDate(Date latestDeliveryDate) {
        this.latestDeliveryDate = latestDeliveryDate;
    }


}
